# To change this template, choose Tools | Templates
# and open the template in the editor.
require 'utility/distance_utils'
require 'utility/vec_utils'
require 'clustering/cluster'

class SimpleCluster
  # Il centroid è l'indice dell'utente nella matrice (id-1 in pratica)
  def SimpleCluster.cluster(centroide,matrix,dimensione=10)
    cluster=[]
    clusters= SimpleCluster.clusterize(centroide, matrix, dimensione)

    clusters.elementi.each{|c|
  
      cluster.push(matrix[c])
      
    }

    return cluster
  end
  def SimpleCluster.clusterize(centroide,matrix,dimensione)
    ddmatrix= DistanceUtils.ddmatrix(matrix)
    cluster= Cluster.new(centroide, ddmatrix[centroide-1])
    candidate= VecUtils.near(ddmatrix[centroide-1], ddmatrix[centroide-1].size)
    candidate.each{|c|      
      if (cluster.elementi.size)<(dimensione) then
        if ddmatrix[centroide-1][c]!=0
          cluster.add_element(c)
        end
      end
    }
    return cluster
  end
end
